<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="utf-8">
	<title>00p2(原型-prototype)</title>
</head>
<body>
<script type="text/javascript">
	
	//原型  prototype

	/*
	// 构造函数方式
	function People (name, age) {
		this.name = name;
		this.age = age;
		//this.getName = function () {alert('我是姓名');}
		this.getName = getName;
	}

	function getName () {
		alert("我是姓名");
	}

	var p1 = new People("z3", 20);
	var p2 = new People("z4", 22);
	//p1.getName();
	//p2.getName();
	alert(p1.getName() == p2.getName()) //false
	//alert(p1.name == p2.name) //false
	*/

	//prototype 创建每一个函数都有一个prototype属性，这个属性其实是一个指针，而这个指针总指向一个对象
	//这个对象的用途就是将特定的属性和方法包含在内，起到一个所有实例所共享的作用
	function People () {}
	People.prototype.name = 'z3';
	People.prototype.age = 20;
	People.prototype.getName = function () {alert(this.name)}
	alert(typeof People.prototype);
	var p1 = new People();
	var p2 = new People();

	//alert(p1.name);
	//alert(p2.name);
	//alert(p1.getName() == p2.getName());

	//构造函数   原型对象   实例对象

	//构造函数.prototype = 原型对象
	//原型对象.constructor = 构造函数
	//alert(People.prototype.constructor);
	//实例对象.prototype = 原型对象
	//alert(p1.prototype);


</script>
</body>
</html>